//
//  ViewController.m
//  08-UITableViewData
//
//  Created by 韩旭 on 16/7/25.
//  Copyright © 2016年 lanou. All rights reserved.
//
#import "ViewController.h"
#define WIDETH self.view.frame.size.width
#define HEIGHT self.view.frame.size.height
#define COLORAUTO [UIColor colorWithRed:(arc4random()%256/255.0) green:(arc4random()%256/255.0) blue:(arc4random()%256/255.0) alpha:1.0]
@interface ViewController ()<UITableViewDataSource, UITableViewDelegate>
@property (nonatomic, strong) UITableView *tableView;
@property (nonatomic, strong) NSArray *arrDataSource;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    _arrDataSource = @[@"唐益梦", @"张合尉", @"高雅馨", @"符淋淋", @"孙遥", @"李毅然", @"于瀚", @"沙长健", @"卢思彤", @"徐昊", @"曹冠雄", @"陈丹明", @"罗浩", @"肖扬", @"王道林", @"宫雪", @"李成", @"冀永金", @"姜浩", @"罗鹏飞", @"李昊林", @"郭宝", @"马峰", @"刘坦奇", @"殷明静", @"邓凯", @"徐康", @"王鍠", @"韩旭", @"杨睿", @"张信宝", @"姜程程", @"包铭礼", @"杜江", @"苗钧豪"];
//    tableView与数组密切相关
//    UItableViewStyle
//    UITableViewStylePlain （section标题悬浮）
//    UITableViewStyleGrouped（分组效果，无悬浮效果）
    [self creatTableView];
}
- (NSArray *)arrDataSource {
    if (!_arrDataSource) {
        self.arrDataSource = [NSArray array];
    }
    return _arrDataSource;
}
- (void)creatTableView {
    
    self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, WIDETH, HEIGHT)style:0];
    self.tableView.delegate = self;
    self.tableView.dataSource = self;
    self.tableView.backgroundColor = [UIColor whiteColor];
    [self.view addSubview:_tableView];
    [_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"ce"];
//    区头高度
//    以下赋值高度的方法, 一次性设置
//    行高(如果实现了协议方法, 该属性失效)
    _tableView.rowHeight = 50;
//    区头高度(如果实现了协议方法, 该属性失效)
    _tableView.sectionHeaderHeight = 20;
//    区尾高度(如果实现了协议方法, 该属性失效)
    _tableView.sectionFooterHeight = 20;
}
// 返会几个区
 //   UITableViewDataSource dataSource的方法
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
//    默认是 1
    return 2;
}
// 区头视图标题
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    return [@(section) description];
}
//   可以根据固定的那个制定高度
#pragma mark - TableView Delegate
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.row == 0) {
        return 100;
    }
    return 50;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    return 100;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return 100;
}
//区尾视图的标题
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section {
    return [NSString stringWithFormat:@"第%ld区的尾视图", section];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return _arrDataSource.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *ID = @"cell";
//    dequeueReusableCellWithIdentifier
//    dequeueReusableCellWithIdentifier:ID forIndexPath
//    第二种只能通过注册方式去创建
//    第二种，比第一种少走一次计算高度的方法（高度的缓存）
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:3 reuseIdentifier:ID];
    }
//    indexPath 分为两个值：row（行）和section（区）
//    indexPath.row
//    indexPath.section
    cell.backgroundColor = COLORAUTO;
//    cell.contentView.backgroundColor = [UIColor blackColor];
    cell.textLabel.text = _arrDataSource[indexPath.row];
    return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"点击了%@", _arrDataSource[indexPath.row]);
}
//点击取消
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"点击了第几%ld区,--，第几 %ld行 %@", indexPath.section,indexPath.row, _arrDataSource[indexPath.row]);
}
//索引标题
- (NSArray<NSString *> *)sectionIndexTitlesForTableView:(UITableView *)tableView {
//    数组内容要和分区个数一样
    NSArray *arr = [NSArray arrayWithObjects:@"A", @"B", @"C", nil];
    return arr;
}
//返回自定义视图
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
//    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, WIDETH, 50)];
    UILabel *lable = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, WIDETH, 0)];
    lable.text = [@(section) description];
    lable.textAlignment = 1;
    lable.backgroundColor = [UIColor redColor];
//    [view addSubview:lable];
    return lable;
}


@end